tricky C question